package com.ruoyi.gwc.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.ruoyi.common.core.domain.FileObject;
import com.ruoyi.system.domain.typehandler.FileObjectTypeHandler;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 费用记录对象 t_cost_record
 * 
 * @author wp
 * @date 2024-12-13
 */
public class TCostRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 记录id */
    private Long recordId;

    /** 所属作业公司 */
    private Long companyId;

    @Excel(name = "公司名称",sort = 1)
    private String companyName;
	
	  /** 加油卡id */
    private Long fuelId;

    /** ect表id */
    private Long ectId;

    /** 驾驶员id */
    private Long driverId;
    @Excel(name = "驾驶员姓名",sort = 2)
    @TableField(exist = false)
    private String driverName;
    /** 联系电话 */
    @Excel(name = "联系电话", sort = 3)
    @TableField(exist = false)
    private String contactNumber;

    /** 车辆id */
    private Long vehicleId;
    @Excel(name = "车牌号" ,sort = 4)
    @TableField(exist = false)
    private String numberPlate;

    /** 费用类型 0收入1支出 */
    @Excel(name = "费用类型",sort = 5,dictType = "costType")
    private Long costType;

    /** 费用名称 0加油费1停车费2过路费3维修费4保养费5保险费6其他费用7etc费用 */
    @Excel(name = "费用名称",sort = 6, dictType = "costName")
    private Long costName;

    /** 发生时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "发生时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss",sort = 7)
    private Date buyTime;

    @ApiModelProperty("开始时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:dd", timezone = "GMT+8")
    @TableField(exist = false)
    private Date startTime;

    @ApiModelProperty("结束时间")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:dd", timezone = "GMT+8")
    @TableField(exist = false)
    private Date endTime;

    /** 费用说明 */
    @Excel(name = "费用说明",sort = 9)
    private String remarks;

    /** 单位分 */
    @Excel(name = "单位元",sort = 8)
    private BigDecimal amount;
    @TableField(exist = false)
    private String amountStr;

    /** 图片列表 json list */
    @ApiModelProperty("图片列表 json list")
    @TableField(typeHandler = FileObjectTypeHandler.class)
    private List<FileObject> imageList;

    public void setRecordId(Long recordId) 
    {
        this.recordId = recordId;
    }

    public Long getRecordId() 
    {
        return recordId;
    }
    public void setCompanyId(Long companyId) 
    {
        this.companyId = companyId;
    }

    public Long getCompanyId() 
    {
        return companyId;
    }
    public void setFuelId(Long fuelId) 
    {
        this.fuelId = fuelId;
    }

    public Long getFuelId() 
    {
        return fuelId;
    }
    public void setEctId(Long ectId) 
    {
        this.ectId = ectId;
    }

    public Long getEctId() 
    {
        return ectId;
    }
    public void setDriverId(Long driverId) 
    {
        this.driverId = driverId;
    }

    public Long getDriverId() 
    {
        return driverId;
    }
    public void setVehicleId(Long vehicleId) 
    {
        this.vehicleId = vehicleId;
    }

    public Long getVehicleId() 
    {
        return vehicleId;
    }
    public void setCostType(Long costType) 
    {
        this.costType = costType;
    }

    public Long getCostType() 
    {
        return costType;
    }
    public void setCostName(Long costName) 
    {
        this.costName = costName;
    }

    public Long getCostName() 
    {
        return costName;
    }
    public void setBuyTime(Date buyTime) 
    {
        this.buyTime = buyTime;
    }

    public Date getBuyTime() 
    {
        return buyTime;
    }
    public void setRemarks(String remarks) 
    {
        this.remarks = remarks;
    }

    public String getRemarks() 
    {
        return remarks;
    }
    public void setAmount(BigDecimal amount)
    {
        this.amount = amount;
    }

    public BigDecimal getAmount()
    {
        return amount;
    }
    public void setImageList(List<FileObject> imageList)
    {
        this.imageList = imageList;
    }

    public List<FileObject> getImageList()
    {
        return imageList;
    }

    public void setCompanyName(String companyName)
    {
        this.companyName = companyName;
    }
    public String getCompanyName(){  return companyName;  }

    public void setDriverName(String driverName)
    {
        this.driverName = driverName;
    }
    public String getDriverName(){  return driverName;  }

    public void setNumberPlate(String numberPlate)
    {
        this.numberPlate = numberPlate;
    }
    public String getNumberPlate(){  return numberPlate;  }

    public void setContactNumber(String contactNumber)
    {
        this.contactNumber = contactNumber;
    }
    public String getContactNumber(){  return contactNumber;  }


    public void setAmountStr(String amountStr)    {
        this.amountStr = amountStr;
    }
    public String getAmountStr(){  return  amountStr;  }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("recordId", getRecordId())
            .append("companyId", getCompanyId())
            .append("companyName", getCompanyName())
			.append("fuelId", getFuelId())
            .append("ectId", getEctId())
            .append("driverId", getDriverId())
            .append("vehicleId", getVehicleId())
            .append("costType", getCostType())
            .append("costName", getCostName())
            .append("buyTime", getBuyTime())
            .append("remarks", getRemarks())
            .append("amount", getAmount())
            .append("amountStr", getAmountStr())
            .append("imageList", getImageList())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("updateBy", getUpdateBy())
            .append("createBy", getCreateBy())
            .toString();
    }
}
